import type { ReactNode } from 'react';
import type { DescriptionsProps as AntDescriptionsProps } from 'antd';

// 描述项配置接口
export interface DescItem {
  // 标签最小宽度
  labelMinWidth?: number;
  // 内容最小宽度
  contentMinWidth?: number;
  // 标签样式
  labelStyle?: React.CSSProperties;
  // 数据字段名
  field: string;
  // 标签内容
  label: ReactNode;
  // 合并列数
  span?: number;
  // 条件显示函数
  show?: (data: Record<string, any>) => boolean;
  // 自定义渲染函数
  render?: (value: any, data: Record<string, any>) => ReactNode;
}

// 组件属性接口
export interface DescriptionProps extends AntDescriptionsProps {
  // 描述项配置数组
  schema?: DescItem[];
  // 数据源对象
  data?: Record<string, any>;
  //配置列
  column?: number;
}

// 组件实例接口
export interface DescInstance {
  // 更新组件属性方法
  setDescProps: (props: Partial<DescriptionProps>) => void;
}